import numpy as np
import pandas as pd
# 创建3x3的NumPy数组，数值范围1-9
arr = np.arange(1,10).reshape(3,3)
# 转换为DataFrame，列名为a/b/c
df1 = pd.DataFrame(arr, columns=['a','b','c'])
# 插入key列作为第一列（注意：key列的值需要与后续合并操作匹配）
df1.insert(0, 'key', ['001','003','002'])
print("原始表1:")
print(df1)
# 创建2x2的NumPy数组，数值范围10-13
arr2 = np.arange(10,14).reshape(2,2)
# 转换为DataFrame，列名为a/e（注意：与df1的列部分重叠）
df2 = pd.DataFrame(arr2, columns=['a','e'])
# 插入key列作为第一列（包含df1中存在的001和新值004）
df2.insert(0, 'key', ['001','004'])
print("\n原始表2:")
print(df2)
# 简单纵向合并（保留所有列，缺失值填充NaN）
df3 = pd.concat([df1,df2])
print("\n简单合并结果（保留所有列）：")
print(df3)
# 带键合并（创建多级索引，sort=True确保列排序）
df4 = pd.concat([df1,df2], keys=['df1','df2'], sort=True)
print("\n带键合并结果（多级索引）：")
print(df4)
# 内连接合并（只保留共有列'a'和'key'），并重置索引
df5 = pd.concat([df1,df2], join='inner', ignore_index=True)
print("\n内连接合并结果（重置索引）：")
print(df5)
